<template>
  <div class="app-container">
    <upload-excel-component :on-success="handleSuccess" :before-upload="beforeUpload" />
  </div>
</template>
<script>
import { reqImportEmployee } from '@/api/employees'
import moment from 'moment'
export default {
  name: 'ImportExcel',
  data() {
    return {
    }
  },
  // mounted() {
  //   console.log(this.$route.query.type)
  // },
  computed: {
    type() {
      return this.$route.query.type
    }
  },
  methods: {
    // 这个函数在进行上传文件大小的校验
    beforeUpload(file) {
      const isLt1M = file.size / 1024 / 1024 < 1

      if (isLt1M) {
        return true
      }

      this.$message({
        message: '请上传小于1M的excel文件',
        type: 'warning'
      })
      return false
    },
    // results 表格的内容 header表格的标题, 上传成功的触发的梳理函数
    async handleSuccess({ results, header }) {
      // console.log(results, header)
      // console.log(results) // results中的字段都是中文,发送请求需要携带的是英文的字段
      // 对应关系
      // 根据路由地址参数的type参数值 走不同的上传业务
      if (this.type === 'user') {
        const userRelations = {
          '入职日期': 'timeOfEntry',
          '手机号': 'mobile',
          '姓名': 'username',
          '转正日期': 'correctionTime',
          '工号': 'workNumber',
          '部门': 'departmentName'
        }
        const arr = results.map(item => {
          const obj = {}
          // console.log(item) // 每一个员工的信息对象
          for (const k in item) {
          // console.log(k)// 中文键
          // console.log(userRelations[k]) // 英文键
            const englishKey = userRelations[k] // 取到英文的键
            // if (englishKey === 'timeOfEntry' || englishKey === 'correctionTime') { // 如果是日期格式处理完后再赋值
            if (['timeOfEntry', 'correctionTime'].includes(englishKey)) {
            // obj[englishKey] = this.formatExcelDate(item[k], '-') // 处理完日期少43s
              obj[englishKey] = moment(this.formatExcelDate(item[k], '-')).add(1, 'days').format('YYYY-MM-DD') // 处理完日期少一天
            } else { // 不需要处理的直接赋值
              obj[englishKey] = item[k] // 在循环中为对象添加键值对
            }
          }
          return obj
        })
        await reqImportEmployee(arr) // 发送excel批量导入的请求
        // 跳转到员工列表页面  go(1) forward()
        // this.$router.go(-1)
        this.$router.back()
      }
      // 考勤上传的业务
      if (this.type === 'att') {
        console.log('考勤上传')
      }
    },
    // 处理excel上传日期格式的处理函数(excel起始时间是1900-1-1, 计算机是1970-1-1)
    formatExcelDate(numb, format) {
      const time = new Date((numb - 1) * 24 * 3600000 + 1) // 毫秒
      time.setYear(time.getFullYear() - 70)
      const year = time.getFullYear() + ''
      const month = time.getMonth() + 1 + ''
      const date = time.getDate() - 1 + ''
      if (format && format.length === 1) {
        return year + format + (month < 10 ? '0' + month : month) + format + (date < 10 ? '0' + date : date)
      }
      return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)
    }
  }
}
</script>
